Day1 我們在 local 端將 AI code review 整了進去,但我們的 MR URL 是給死的,這不符合正常使用情境,我們現在要將運行這件事情整進 runner 內,然後藉由 webhook 帶入 server
main-feature(repo) - trigger webhook -> ai-review-runner(repo)
我們先做第一件事情,確認 main-feature - trigger webhook → 是可以正常運作的,我們才可以解決第一件事情,動態給予 MR URL 。
在main-feature 的 setting - webhooks,我們得知 webhooks 要設定幾樣事情
url - 這邊的 URL,我們參考官方網站,如果要觸發另一個 repo 的 pipeline 可以藉由網址的方式
trigger event → 這邊會設定 Merge request events
我們先來建立 ai-review-runner 的 repo,由於這個 runner 到時候會放 image,裡面可能會有隱私 token,所以先開 private。建立好 repo 後,我們先建立基本的 pipeline,等等才知道能不能成功串接。因為是 private,所以我 clone 時有帶上 personal token
git clone https://ooii8929:xxxxx@gitlab.com/ooii8929/ai-review-runner
我們新增一個 .gitlab-ci.yml 檔案,然後 push 上 branch,發現有成功觸發
stages:
- build
build_job:
stage: build
script:
- echo "Building the project..."
- echo "Build complete."
我們要來創建 trigger pipeline 專用的 pipeline trigger token。在 ai-review-runner 前往 setting - cicd - Pipeline trigger tokens。Description 寫 For ai code review
。拿到 token 之後,我們參考官方的 webhook URL
https://gitlab.example.com/api/v4/projects/<project_id>/ref/<ref_name>/trigger/pipeline?token=<token>
https://gitlab.com/api/v4/projects/60531797/ref/main/trigger/pipeline?token=xxxxx
在 main-feature 的 webhook 新增上述 URL,token 的地方可以善用 Mask portions of URL。成功加入後按一下 test - merge request event,就可以看到上方有 HTTP 201
回到 ai-review-runner 來看,就可以看到 pipeline 被 trigger 了